/**
 * @description: 文件描述
 * @version: 0.0.1
 * @author: ljr
 * @Date: 2023-09-20 11:46:29
 */
/**
 * @controller 品牌管理
 * @description 品牌管理的增删改查
 */
import { Inject, Controller, Body, Post,Get, Query } from '@midwayjs/core';
import { Context } from '@midwayjs/koa';
import { BrandConfigService } from '../service/brand.config.service'
import { UpdateBrandsDTO, InsertBrandsDTO } from '../dto/brand.config';
import { PageDTO, IdDTO } from "../dto/common"

@Controller('/api/v1')
export class brandconfig {
  @Inject()
  ctx: Context;
  @Inject()
  BrandConfigService: BrandConfigService;
  /**
  * @summary 获取所有品牌列表
  * @description 获取所有品牌列表-为前端列表选择使用
  * @router post /api/v1/brandconfig/getAllBrandsPage
  * @response 200 baseResponse 返回结果
  */
  @Get('/brandconfig/getAllBrandsPage')
  async getAllBrandsPage(): Promise<any> {
    return await this.BrandConfigService.getAllBrandsPage();
  }

  /**
  * @summary 获取品牌列表
  * @description 获取品牌列表
  * @router post /api/v1/brandconfig/getBrandsPage
  * @response 200 baseResponse 返回结果
  */
  @Post('/admin/brandconfig/getBrandsPage')
  async getBrandsPage(@Body() options: PageDTO): Promise<any> {
    return await this.BrandConfigService.getBrandsPage(options);
  }

  /**
  * @summary 修改品牌信息
  * @description 修改品牌信息
  * @router post /api/v1/brandconfig/updateBrands
  * @response 200 baseResponse 返回结果
  */
  @Post('/admin/brandconfig/updateBrands')
  async updateBrands(@Body() options: UpdateBrandsDTO): Promise<any> {
    return await this.BrandConfigService.updateBrands(options);
  }

  /**
  * @summary 修改品牌信息
  * @description 修改品牌信息
  * @router post /api/v1/brandconfig/insertBrands
  * @response 200 baseResponse 返回结果
  */
  @Post('/admin/brandconfig/insertBrands')
  async insertBrands(@Body() options: InsertBrandsDTO): Promise<any> {
    return await this.BrandConfigService.insertBrands(options);
  }

  /**
  * @summary 删除品牌信息
  * @description 删除品牌信息
  * @router get /api/v1/brandconfig/deleteBrands
  * @response 200 baseResponse 返回结果
  */
  @Get('/admin/brandconfig/deleteBrands')
  async deleteBrands(@Query() options: IdDTO): Promise<any> {
    return await this.BrandConfigService.deleteBrands(options.id);
  }
}
